import torch
from torch.utils.data import TensorDataset # 构造数据集对象
from torch.utils.data import DataLoader # 数据加载器
from torch import nn # nn模块中有平方损失函数和假设函数
from torch import optim # optim模块中有优化器函数
from sklearn.datasets import make_regression # 创建线性回归模型数据集
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号


def create_dataset():
    x, y, coef = make_regression(n_samples=100,n_features=1, noise=10, coef=True, bias=1.5, random_state=0)
    # 将构建数据转换为张量类型
    x = torch.tensor(x)
    y = torch.tensor(y)
    return x, y, coef


# 生成的数据
x,y,coef=create_dataset()
# 绘制数据的真实的线性回归结果
plt.scatter(x, y)
x = torch.linspace(x.min(), x.max(), 1000)
y1 = torch.tensor([v * coef + 1.5 for v in x])
plt.plot(x, y1, label='real')
plt.grid()
plt.legend()
plt.show()